A Nomad's Computer

When you're a full-time traveller you usually don't posses much and therefor don't really have to take care of many things. Apart from the usual suspects like your passport there's probably one thing that's really valuable to you: Your computer.

A Nomad's Computer

For me, that computer is a 2018 15" MacBook Pro 2,9GHz 6-Core Intel Core i9 with 32GB DDR4 RAM, an Intel UHD 630 and an additional AMD Radeon Pro 560X 4GB on-board graphics card. It's one of those MacBooks without a physical escape key, which is an important detail to me. Frankly speaking, it's what I dislike most about it, but let's not go down that rabbit hole.

I'm running the latest macOS release and I usually keep my OS and all my applications up-to-date. Its internal 1TB SSD is fully-encrypted and I use my own storage over cloud-services like Google Drive, Dropbox or Microsoft Drive, because I'm working with confidential data most of the time. I also spend a proportionally large amount of time on the command line, which is why I have a few things here and there that make my life easier. Overall, I'm very much a minimalist in terms of software.

Software Management

For starters, I use brew for managing most of the software that's running on my MacBook. In case you don't know brew yet, it's a package manager similar to those that you use on Linux distributions (apt, yum, emerge, apk, ...) and it allows you to install and manage CLI tools and also full-blown macOS applications in a more reproducible fashion. I personally even use it for installing and updating programs like Sublime Text and Docker Desktop. As my list of tools and programs varies a lot by time and project, I won't write down a complete list of everything I have ever had installed through brew, but here are a few CLI essentials that I use to keep around all the time:

arduino-mk       git-crypt             readline
asciinema        git-flow              rebar3
autoconf         git-lfs               riscv-gnu-toolchain
automake         gnu-sed               riscv-isa-sim
avr-binutils     gnupg                 riscv-pk
avr-gcc          go                    riscv-tools
avrdude          gotop                 rsnapshot
awscli           imagemagick           rtv
bettercap        irssi                 ruby
binutils         jq                    rust
cabal-install    make                  smartmontools
caddy            midnight-commander    socat
cmake            minicom               sqlite
dark-mode        neomutt               stlink
doxygen          neovim                telnet
dtc              ninja                 terraform
elixir           node                  tmux
erlang           notmuch               tor
findutils        open-ocd              transmission-cli
freetype         picocom               unrar
gawk             pinentry              w3m
gettext          pkg-config            wget
ghc              protobuf              yarn
git              python                zsh

Creative Work

Apart from these, I try to keep the GUI applications down to a minimum and only install the ones I really need. I'm very mindful in terms of GUI applications and I stay miles away from Adobe software. Only a few months ago I successfully got rid of the very last Adobe program I was using, which was Lightroom Classic. For the little creative work that I'm doing, I'm using the following programs:

I really don't do much creative work, though. It's more of a hobby. The reason I keep things like Pixelmator around is for the times when people send me PSDs or when I really do need to draw a few things on my own.

Engineering & Development

However, let's continue to the cooler parts: Engineering & development. Here's where things get a bit more diverse and crowded. Probably the most important UI application in these areas to me is Sublime Text. I don't use Xcode, VS Code or any other IDE when I'm not forced to do so. On projects in which I do a lot of Qt I use their toolchain in order to stay sane. However, if I was looking forward to a couple of sleepless nights full of headaches, I could probably switch large parts of the development flow over to a Sublime & CLI-approach as well. That's usually what I do with Arduino/STM projects and even more with RIOT-based projects, thanks to their pretty solid CLI toolchain.

Even though I'm a heavy Sublime user, I tend to keep my local Package Control repository very clean in order to not have too much baggage around. The more nifty packages one uses with Sublime, the more sluggish and crash-prone it will become. Especially the LSP packages for Sublime seem to make it crash a lot more than it usually does – which for me is actually never. As for the settings, I probably use similar options like most people who use Sublime to such an extend.

Next up is Docker. I use containers for many things, hence the Docker Desktop application is quite an important part of my everyday life. I do have Kitematic installed as well, but I hardly ever use it. Most of the time I'm working with the docker CLI which, compared to other CLIs like for example aws, kubectl, gcloud or gsutil I find very intuitive and easy to use. My local Docker engine is set up to run as a swarm, hence when I need to fire up containers locally, I use docker stack deploy for that.

I usually hack all these commands into a tmux session that's constantly running inside a single instance/window of Alacritty. I used to use iTerm2 for a very long time, but roughly a year ago I switched to Alacritty while I was working with an eGPU attached to my MacBook and experienced super annoying issues with iTerm2's rendering performance.

The shell that I used even before macOS made it the default was and still is Zsh, with Oh My Zsh installed and a carefully crafted .zshrc that allows me to backup and recover it from a GitHub Gist, so that I can easily set it up on other systems (e.g. the dozen SBCs that I usually keep around). For CLI-completeness I also have neovim and neomutt set up.

CLI-Fun

Of course, I enjoy trying out new tools and programs, especially on the CLI and I have a handful of gimmicks I like to use, like wtf or rainbowstream. A long time ago I used to maintain a handful of CLI tools on my own, like snoo, a CLI client for Reddit. Unfortunately lack of time made me gave up these efforts.

Snoo, CLI client for Reddit

Little Helpers

Besides of the crude command line interface I also heavily use LaunchBar, because it allows me to keep my hands on the keyboard while performing UI-related actions and tasks. LaunchBar brings a large set of functions and allows for easy extensibility. Other programs and little helpers that I use include:

  • 1Password, for storing passwords, credit cards and all that
  • Dash, for having documentation available offline
  • Deliveries, for tracking packages
  • Flotato, for having Gmail and Mastodon as an app that I can launch from my Dock and LaunchBar
  • GIPHY Capture, for capturing GIFs right on screen
  • GPG Suite, for all-things-GPG
  • iA Writer, for writing these journal entries
  • iStat Menus, for monitoring the MacBook's crappy thermals
  • Keybase, for the same reason everyone uses Keybase which is "Well, I don't really know why"
  • Ledger Live, for those coins
  • Messages, for communicating with the rest of the world – no WhatsApp or Telegram here
  • Music, because I decided to have a look at Spotify's competition
  • Numi, for notes in which I need to do some math
  • OpenEmu, for the little time I don't spend outside and/or working on things
  • Paw, for testing and debugging those APIs
  • Podcasts, for listening to podcasts on my MacBook and my iPhone
  • ProtonVPN, for more anonymity while on public WiFi
  • Reeder, for following the world's news
  • Reminders, for my personal tasks and because spending $80 in total on a GTD app that's barely being updated is definitely not worth it
  • Resilio Sync, for use with my very own encrypted storage
  • Riot, for communication within (mainly open-source) projects
  • Signal, for communicating with everyone else that's as paranoid as I am
  • SketchUp, for designing 3D prints. Side note: I have this love-hate-relationship where I love SketchUp for its simplicity, but I hate it for its limitations and I definitely hate it for its exaggerated monthly fee. Hence learning FreeCAD and/or Blender is definitely on my Reminders list.
  • SmartScope, for hours of SPI-debugging fun
  • Steam, for Cities: Skylines
  • TimeMachineEditor, for taming TimeMachine
  • Tower, for not having to remember those effin' git commands. Another love-hate-relationship here: I love the guys from fournova and the work they do. However, with their latest move to a subscription-based price model they made Tower a lot less attractive to me and apparently many others I talked to.
  • Twitter, for reading those tweets
  • Tyme2, for tracking working hours and exporting them into my billing flow

Browsers

Last but not least, let's talk about browsers. For my day-to-day browsing I use Safari. The main reasons for that is my distrust against Google and Google products – so Chrome won't ever be my daily driver – and the fact that Safari seems a lot more optimised on macOS than Firefox, Vivaldi, Brave and all the others. I would love to use Firefox more and eventually switch to it, unfortunately I depend a lot on battery power and all other browser seem to be draining it more quickly than Safari does. Also Apple caught-up pretty well in the privacy game with the latest version of Safari. As for the extensions, I'm using DuckDuckGo's Privacy Essentials, Ghostery Lite, Ka-Block! and of course the 1Password Safari extension. Regardless of which browser I use as my daily driver, I do keep an up-to-date version of Firefox and Chrome around, so that I can test web-related things in different browsers. Also, when I used Google services (like my business mail) I use them either through Flotato (see above) or Chrome. For the decentralised web I use Beaker, for the dark web I use Firefox through Tor.

I guess that's it. That's pretty much all the software and tools I use on my computer. These are the tools that allow me to do what I do best: Work with clients world-wide to build beautiful products that people love to use and meanwhile contribute to the open-source movement as much as I can.

One last thing ...

I know what you're thinking.

"But why does it look like that?"

The reason is pretty simple: The sticker art makes it impossible to see that it's an actual MacBook, at least without taking a closer look. Hence it becomes less of a prey for snatchers. In fact, many people think it's an actual book or very thick weirdo comic magazine. 😅

The backside of my MacBook